/*
Other self-defined RNGs
*/
#ifndef __ORNGS_H__
#define __ORNGS_H__

#include <stdlib.h>
#include <math.h>

#include "libRNG.h"

#ifdef __cplusplus
extern "C" {
#endif	

#define BUFN 10000
	extern float sbuf[BUFN];
	extern double dbuf[BUFN];

	int sLCG( VSLStreamStatePtr stream, int* n, float sbuf[], int* nmin, int* nmax, int* idx );
	int dLCG( VSLStreamStatePtr stream, int* n, double dbuf[], int* nmin, int* nmax, int* idx );

	void kiss_srand(unsigned long seed);
	int sKISS( VSLStreamStatePtr stream, int* n, float sbuf[], int* nmin, int* nmax, int* idx );
	int dKISS( VSLStreamStatePtr stream, int* n, double dbuf[], int* nmin, int* nmax, int* idx );

#ifdef __cplusplus
}
#endif

#endif // __ORNGS_H__